#import "DirectionPointerController.h"
#import <CoreLocation/CoreLocation.h>

@interface DirectionPointerController ()<CLLocationManagerDelegate>
/**
 *  定位管理者
 */
@property (nonatomic ,strong) CLLocationManager *mgr;
// 指南针图片
@property (nonatomic, strong) UIImageView *compasspointer;
@end

@implementation DirectionPointerController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = kMyColor;
    
    //添加标题
    UILabel *titleLable = [[UILabel alloc]init];
    titleLable.text = @"草泥马の指南针";
    [self.view addSubview:titleLable];
    
    titleLable.textColor = [UIColor orangeColor];
    titleLable.font = MYFONT(30);
    [titleLable sizeToFit];
    
    [titleLable mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerX.equalTo(self.view);
        make.top.equalTo(self.view).offset(100);
    }];
    
    
    
    //添加返回按钮
    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [self.view addSubview:backBtn];
    [backBtn setTitle:@"返回主界面" forState:UIControlStateNormal];
    [backBtn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
    [backBtn setBackgroundImage:[UIImage imageNamed:@"bk"] forState:UIControlStateNormal];
    backBtn.titleLabel.font = MYFONT(25);
    [backBtn sizeToFit];
    
    [backBtn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerX.equalTo(self.view);
        make.bottom.equalTo(self.view).offset(-100);
    }];
    
    [backBtn addTarget:self action:@selector(clickBackBtn) forControlEvents:UIControlEventTouchUpInside];
    
    
    
    // 1.添加指南针图片
    
    UIImageView *iv = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"znz"]];
    
    iv.layer.cornerRadius = 150;
    iv.clipsToBounds = YES;
    
    iv.center = CGPointMake(self.view.center.x, self.view.center.y);
    iv.bounds = CGRectMake(0, 0, 300, 300);
    [self.view addSubview:iv];
    self.compasspointer = iv;
    
    // 2.成为CoreLocation管理者的代理监听获取到的位置
    self.mgr.delegate = self;
    
    // 3.开始获取用户位置
    // 注意:获取用户的方向信息是不需要用户授权的
    [self.mgr startUpdatingHeading];
    
    
}
#pragma mark - CLLocationManagerDelegate
// 当获取到用户方向时就会调用
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
    //    NSLog(@"%s", __func__);
    /*
     magneticHeading 设备与磁北的相对角度
     trueHeading 设置与真北的相对角度, 必须和定位一起使用, iOS需要设置的位置来计算真北
     真北始终指向地理北极点
     */
    //    NSLog(@"%f", newHeading.magneticHeading);
    
    // 1.将获取到的角度转为弧度 = (角度 * π) / 180;
    CGFloat angle = newHeading.magneticHeading * M_PI / 180;
    // 2.旋转图片
    /*
     顺时针 正
     逆时针 负数
     */
    //    self.compasspointer.transform = CGAffineTransformIdentity;
    self.compasspointer.transform = CGAffineTransformMakeRotation(-angle);
    
    
    
    
}


//点击返回主页按钮
-(void)clickBackBtn{
    [self dismissViewControllerAnimated:YES completion:nil];
}



#pragma mark - 懒加载
- (CLLocationManager *)mgr
{
    if (!_mgr) {
        _mgr = [[CLLocationManager alloc] init];
    }
    return _mgr;
}

@end
